package dom4j;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.util.List;

/*
dom4j中的重要类和方法
     1.SaxReader类
       read() 读取/加载xml文档
     2.Document类:代表内存中整个xml文档
       getRootElement() 获取根节点
     3.Element类
       elements():获取指定名称的所有子标签,也可以不指定名称
       element():获取指定名称的第一个子标签,也可以不指定名称
       getName():获取当前元素的名称
       attributeValue():获取指定属性名的属性值
       elementText():获取指定名称子标签文本
       getText():获取当前标签文本
*/
public class DOM4JDemo01 {
    public static void main(String[] args) throws Exception {
        //1.利用SaxReader读取一个xml文件
        Document document = new SAXReader().read("day01-xml-json/Demo03.xml");
//        System.out.println(document);

        //2.利用Document对象获取根节点
        Element rootElement = document.getRootElement();

        //3.获取根节点下的所有子节点
        List<Element> elements = rootElement.elements();

        //4.遍历所有子节点，进一步获取子节点中的内容
        for (Element childElement : elements) {
            System.out.println(childElement.getName() + " " +
                    childElement.attributeValue("pid") + " "
                    + childElement.attributeValue("color"));

            //5.获取当前遍历的product元素中的子元素
            for (Element ele : childElement.elements()) {
                System.out.println(ele.getName()+" "+
                        ele.getText()+" "+
                        ele.attributeValue("name"));
            }
        }
    }
}
